/**
 * @file MarkPosePubModel.h
 * @author
 * @brief 
 * @version 1.0
 * @date 2020-08-11
 * 
 * @copyright Copyright (c) 2020
 * 
 */

#include "rclcpp/rclcpp.hpp"
#include "geometry_msgs/msg/twist.hpp"
#include "geometry_msgs/msg/pose_array.hpp"
#include "data_struct/geometry/Point.h"
#include <stdio.h>
#include <unistd.h>

namespace behavior_controller
{

    class MarkPosePubModel
    {
    public:
        MarkPosePubModel(){};
        MarkPosePubModel(const rclcpp::Node::SharedPtr &ros_node);
        ~MarkPosePubModel(){};
        void SetNode(const rclcpp::Node::SharedPtr &ros_node);
        void MarkPosePub(std::vector<PointF> &pose_array);
    private:
        rclcpp::Publisher<geometry_msgs::msg::PoseArray>::SharedPtr mark_pose_pub_=nullptr;
        rclcpp::Node::SharedPtr ros_node_;
    };

    //static MarkPosePubModel mark_pose_pub_mod;
    extern MarkPosePubModel mark_pose_pub_mod;
} // namespace behavior_controller